package com.grant.code.service;

import java.io.File;
import java.io.IOException;
import java.util.List;

/**
 * 视频服务接口 - 处理视频文件的存储和管理
 */
public interface VideoService {
    
    /**
     * 获取用户的所有视频文件
     * @param userId 用户ID
     * @return 用户的视频文件列表
     */
    List<File> getUserVideos(Integer userId);
    
    /**
     * 保存用户视频文件
     * @param userId 用户ID
     * @param videoFile 视频文件
     * @return 保存后的视频文件引用
     * @throws IOException 保存失败时抛出异常
     */
    File saveUserVideo(Integer userId, File videoFile) throws IOException;
    
    /**
     * 删除用户视频文件
     * @param userId 用户ID
     * @param videoFileName 视频文件名
     * @return 是否删除成功
     */
    boolean deleteUserVideo(Integer userId, String videoFileName);
    
    /**
     * 重命名用户视频文件
     * @param userId 用户ID
     * @param oldFileName 原文件名
     * @param newFileName 新文件名
     * @return 重命名后的文件引用，失败返回null
     * @throws IOException 重命名失败时抛出异常
     */
    File renameUserVideo(Integer userId, String oldFileName, String newFileName) throws IOException;
    
    /**
     * 获取用户视频存储目录
     * @param userId 用户ID
     * @return 用户视频存储目录
     */
    File getUserVideoDirectory(Integer userId);
    
    /**
     * 初始化用户视频目录
     * @param userId 用户ID
     * @return 是否初始化成功
     */
    boolean initUserVideoDirectory(Integer userId);
} 